package cn.itcast.nems.journal.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import lombok.Data;

import java.time.LocalDate;
import java.util.List;

@Data
public class JournalTransferInfoBDtoLine {
    private String originStudentRecordId;
    private Integer originClazzId;
    private String originClazzName;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate originClazzInDate;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate originClazzOutDate;
    private String originClazzOriginalAmountFormatted;
    private String originClazzDiscountAmountFormatted;
    private String originClazzAmountDueFormatted;
    private String originActualAmountDueFormatted;
    private String originClazzSettlementAmountFormatted;
    private String originClazzActualSettlementAmountFormatted;
    private Integer originClazzServiceDays;
    private Integer originClazzSettlementDays;
    private Integer originClazzActualSettlementDays;
    private LocalDate targetClazzInDate;
    private String targetClazzOriginalAmountFormatted;
    private String targetClazzDiscountAmountFormatted;
    private String targetClazzAmountDueFormatted;
    private String targetClazzActualAmountDueFormatted;
    private String targetClazzTransferAmountFormatted;
    private Boolean priceDifferenceFlag;
    private String priceDifferenceAmountFormatted;
    private String state;
    private String studentRecordId;
    private List<JournalTransferInfoBDtoLineDiscount> discountList;
    /**
     * 个人优惠单
     */
    private List<JournalTransferInfoBDtoLineDiscount> discountCouponList;
    private String reasonCode;
    private String reasonDescription;

    private Integer multiPaymentAccountFlag;
    private String originPaymentAccountCode;
    private String originPaymentAccountName;

    private String journalTransferId;
    private String id;
}
